Java Technologies Generic Methods এবং Subclassing গাইড ও নোট

373

Generic Methods

জাভায় Generic Methods হলো এমন মেথড যা জেনেরিক টাইপ প্যারামিটার ব্যবহার করে। এর মাধ্যমে মেথডকে যেকোনো টাইপের ডেটার জন্য ব্যবহার করা যায়।

Generic Method এর গঠন:

public <T> ReturnType methodName(T param) {
    // Method body
}
  • <T>: টাইপ প্যারামিটার ডিক্লারেশন।
  • T: টাইপ প্যারামিটার মেথডের প্যারামিটার বা রিটার্ন টাইপে ব্যবহার করা হয়।

Generic Method এর উদাহরণ:

public class GenericMethodExample {
    // Generic Method
    public static <T> void printArray(T[] array) {
        for (T element : array) {
            System.out.println(element);
        }
    }

    public static void main(String[] args) {
        Integer[] intArray = {1, 2, 3, 4};
        String[] strArray = {"Java", "Generics", "Example"};

        printArray(intArray); // Prints: 1 2 3 4
        printArray(strArray); // Prints: Java Generics Example
    }
}

Generic Methods with Multiple Parameters

public class MultipleGenericMethod {
    // Generic Method with Multiple Parameters
    public static <T, U> void displayPair(T first, U second) {
        System.out.println("First: " + first + ", Second: " + second);
    }

    public static void main(String[] args) {
        displayPair("Java", 100);    // First: Java, Second: 100
        displayPair(3.14, "Generics"); // First: 3.14, Second: Generics
    }
}

Generic Methods with Bounded Types

public class BoundedGenericMethod {
    // Generic Method with Upper Bound
    public static <T extends Number> double calculateSum(T num1, T num2) {
        return num1.doubleValue() + num2.doubleValue();
    }

    public static void main(String[] args) {
        System.out.println(calculateSum(10, 20));      // Output: 30.0
        System.out.println(calculateSum(3.14, 2.71)); // Output: 5.85
    }
}

Subclassing in Generics

জেনেরিক্স ব্যবহার করে সাবক্লাস তৈরি করলে, একটি ক্লাস অন্য একটি জেনেরিক ক্লাসকে প্রসারিত করতে পারে।

Generic Class Subclassing

// Generic Superclass
class GenericSuperclass<T> {
    private T value;

    public GenericSuperclass(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }
}

// Non-Generic Subclass
class StringSubclass extends GenericSuperclass<String> {
    public StringSubclass(String value) {
        super(value);
    }
}

// Generic Subclass
class GenericSubclass<T> extends GenericSuperclass<T> {
    public GenericSubclass(T value) {
        super(value);
    }
}

ব্যবহার:

public class SubclassExample {
    public static void main(String[] args) {
        // Non-Generic Subclass Example
        StringSubclass stringObject = new StringSubclass("Hello");
        System.out.println("Value: " + stringObject.getValue()); // Output: Value: Hello

        // Generic Subclass Example
        GenericSubclass<Integer> integerObject = new GenericSubclass<>(100);
        System.out.println("Value: " + integerObject.getValue()); // Output: Value: 100
    }
}

Generic Interfaces এবং Subclassing

জেনেরিক ইন্টারফেস ব্যবহার করে সাবক্লাস তৈরি করা যায়।

// Generic Interface
interface GenericInterface<T> {
    void display(T data);
}

// Subclass Implementing Generic Interface
class GenericInterfaceImpl<T> implements GenericInterface<T> {
    @Override
    public void display(T data) {
        System.out.println("Data: " + data);
    }
}

ব্যবহার:

public class GenericInterfaceExample {
    public static void main(String[] args) {
        GenericInterface<String> stringImpl = new GenericInterfaceImpl<>();
        stringImpl.display("Java Generics"); // Output: Data: Java Generics

        GenericInterface<Integer> intImpl = new GenericInterfaceImpl<>();
        intImpl.display(123); // Output: Data: 123
    }
}

Generic Methods এবং Subclassing এর সুবিধা

  1. Reusable Code:
    • একবার লিখে একাধিক টাইপের জন্য ব্যবহার করা যায়।
  2. Type Safety:
    • টাইপ মিসম্যাচের ঝুঁকি কমিয়ে দেয়।
  3. Flexible Design:
    • সাবক্লাস এবং মেথড উভয় ক্ষেত্রেই জেনেরিক্স ডিজাইন সহজ করে।
  4. Compile-Time Checking:
    • টাইপ সংক্রান্ত ত্রুটি কম্পাইল টাইমেই ধরা পড়ে।

জেনেরিক মেথড এবং সাবক্লাসিং জাভার জেনেরিক্সের শক্তিশালী বৈশিষ্ট্য। এগুলোর মাধ্যমে টাইপ সেফ এবং পুনঃব্যবহারযোগ্য কোড লেখা সহজ হয়। বড় প্রজেক্টে কোডের ফ্লেক্সিবিলিটি বাড়াতে এগুলো অত্যন্ত কার্যকরী।

Content added By
Promotion

Are you sure to start over?

Loading...